package everyday;

import java.util.Arrays;

/**
 * @author zhangmin
 * @create 2022-05-06 14:05
 * 剑指 Offer 45. 把数组排成最小的数
 * 输入一个非负整数数组，把数组里所有数字拼接起来排成一个数，打印能拼接出的所有数字中最小的一个。
 *
 * 思路：
 * 直接将两个拼成字符串然后比较大小
 */
public class minNumber_offer45 {
    public String minNumber(int[] nums) {
        int n=nums.length;
        String[] ns=new String[n];
        for (int i = 0; i < n; i++) {
            ns[i]=String.valueOf(nums[i]);
        }
        Arrays.sort(ns,(a,b)->{
            return (a+b).compareTo(b+a);
        });
        StringBuffer sb=new StringBuffer();
        for (int i = 0; i < n; i++) {
            sb.append(ns[i]);
        }
        return sb.toString();
    }
}
